/*
 ** 防抖函数
 ** @fn 要执行的函数
 ** @delay 间隔时长
 ** @immediate 是否立即触发一次
 */
function debounce(fn, delay, immediate) {
    if (typeof fn !== 'function') {
        throw new TypeError('need a function arguments')
    }
    var timer = null // 定时器，用来 setTimeout
    return function () {
        // 保存函数调用时的上下文和参数，传递给 fn
        var context = this
        var args = arguments
        // 每次这个返回的函数被调用，就清除定时器，以保证不执行 fn
        clearTimeout(timer)
        if (immediate) {
            var callNow = !timer
            timer = setTimeout(function () {
                timer = null
            }, delay)
            if (callNow) fn.apply(context, args)
        } else {
            // 当返回的函数被最后一次调用后（也就是用户停止了某个连续的操作），
            // 再过 delay 毫秒就执行 fn
            timer = setTimeout(function () {
                fn && fn.apply(context, args)
            }, delay)
        }

    }
}

const browserUtils = {
    versions: function () {
        var u = navigator.userAgent;
        return {
            trident: u.indexOf('Trident') > -1, //IE内核
            presto: u.indexOf('Presto') > -1, //opera内核
            webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
            gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
            mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
            ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
            android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
            iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
            iPad: u.indexOf('iPad') > -1, //是否iPad
            webApp: u.indexOf('Safari') == -1, //是否web应该程序，没有头部与底部
            weixin: u.indexOf('MicroMessenger') > -1, //是否微信 （2015-01-22新增）
            qq: u.match(/\sQQ/i) == " qq" //是否QQ
        }
    }(),
    language: (navigator.browserLanguage || navigator.language).toLowerCase()
}
//console.log(browserUtils.versions
let isIos = browserUtils.versions.ios // 判断是否是ios
let isAndroid = browserUtils.versions.android // 判断是否是android
let isMobile = browserUtils.versions.mobile

// console.log(isMobile)

const applicationTerminal = {
    app: function () {
        if (isMobile) {
            var ua = navigator.userAgent.toLowerCase(); //获取判断用的对象
            return {
                WX: ua.match(/MicroMessenger/i) == "micromessenger", // 判断是否是微信
                WeiBo: ua.match(/WeiBo/i) == "weibo", // 是否是微博
                QQ: ua.match(/QQ/i) == "qq" // 是否是QQ
            }
        }
    }()
}

let isWX = applicationTerminal.app.WX // 判断是否是在微信内部打开


//禁用浏览器返回
function disabled_back() {
    //防止页面后退
    history.pushState(null, null, document.URL);
    window.addEventListener('popstate', back_common)
}
//启用浏览器返回
function enable_back() {
    history.go(-1);
    window.removeEventListener('popstate', back_common)
}

function back_common() {
    history.pushState(null, null, document.URL);
}

//disabled_back()


// 弹框js
function modalboxOpend(opts) {
    let options = {
        container: $('.modalbox'),
        callback: function () {}
    }
    if (opts) {
        Object.assign(options, opts)
    }
    let {
        container
    } = options;
    //console.log(container)  
    container.addClass('opened')
    container.find('.close').click(function () {
        var self = $(this)
        var href = self.data("href")
        $(this).parents('.modalbox').removeClass('opened')
        if (href) {
            setTimeout(() => {
                window.location.href = href;
            }, 275)
        }
    })
}

function txtTipsPop(message, cb, clsName = 'error') {
    var delay = 1500
    var timer;

    $('body').append('<div class="tips-pop-box"><div class="txt-tips-pop"><p class="' + clsName + '">' + message + '</p><span class="close-tips"></span></div></div>')

    setTimeout(() => {
        $('.tips-pop-box').addClass('opened')
    })
    $('.close-tips').click(close)
    timer = setTimeout(function () {
        close()
    }, delay + 500)

    function close() {
        $('.tips-pop-box').removeClass('opened')
        setTimeout(() => {
            $('.tips-pop-box').remove()
            cb && cb()
            clearTimeout(timer)
        }, 300)
    }
}


// h5 链接直接分享，如果是其他页面，直接先跳转到首页
function isGoToIndex() {
    if (!localStorage.getItem('phone')) {
        console.log("跳转到首页")
        window.location.href = 'index.html'
    }
}